home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
fsw
/
zm302
/
zm3.man
< prev
next >
Wrap
Text File
|
1996-12-21
|
122KB
|
2,915 lines
MEASURE 3
X-BASIC用外部関数MUSICZ3.FNC
X680x0本体付属のBASIC「X-BASIC」からZMUSIC Ver.3.0を
使う方法について述べます。
3.1. はじめに
BASICからZMUSICを使うには外部関数「MUSICZ3.FNC」を
組み込んだX-BASICを起動する。
組み込み方は以下の通り。
1.BASICディレクトリ中のBASIC.CNFの内容のうち
FUNC=MUSIC
の部分を
FUNC=MUSICZ3
のように変更する。
2.このディレクトリにMUSICZ3.FNCをコピーする。
3.コマンドプロンプトから
A>basic
としてX-BASICを起動する。
しかし、各ユーザーのシステム環境によっては多少の食い違いもあるので
よく分からない人はX680x0付属の「BASICマニュアル」を参照してほしい。
3.2.MUSICZ.FNC(ZMUSIC Ver.2.0用X-BASIC外部関数)との違いについて
ZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令はZMUSIC Ver.3.0用
のX-BASIC外部関数「MUSICZ3.FNC」上で実行することは出来るがX-BASICプログラムに
記述した場合のみに限られる。コマンドをX-BASICコマンドラインに直接打ち込んでの
実行は出来ない。
また、MUSICZ.FNCの命令を使ったX-BASICプログラムは音楽演奏を行う
ミュージックプログラムに限られ、コマンド(関数)の戻り値を利用して実行制御を
行っているようなツールの動作は保証されない。また、XCでコンパイルも行えない。
逆にMUSICZ3.FNCの命令はMUSICZ.FNCのものと異なり、X-BASICコマンドラインに
直接打ち込んでの実行も行え、コンパイルも可能。コマンド(関数)の戻り値を利用
して実行制御するようなツールを制作することもできる。
MUSICZ3.FNCにおけるMUSICZ.FNCの命令実行機能は、互換性維持のためだけに
設けてあるため、曲の制作はZMSベースで行うことを奨励する。MUSICZ3.FNCは
X-BASIC上でミュージックツールなどを制作する場合等に利用するとよい。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ MUSICZ3.FNCでは仕様変更のなされたMUSICZ.FNC命令 ┃
┃ ┃
┃ MUSICZ.FNCとMUSICZ3.FNCとでは以下の関数に置いてパラメータの与えかたや仕様 ┃
┃ ┃
┃に関して変更が加えられた。 ┃
┃ ┃
┃・m_alloc()はダミー命令となった。 ┃
┃ ┃
┃・m_stat()はパラメータ省略不可となり、さらにパラメータはチャンネルから ┃
┃ トラック番号に変更された。 ┃
┃ ┃
┃・m_rec()はI/F番号をパラメータとして取るようになった。 ┃
┃ (ほぼ同等の機能のzm_midi_rec()を新設) ┃
┃ ┃
┃・m_rstop()はI/F番号をパラメータとして取るようになった。 ┃
┃ (ほぼ同等の機能のzm_midi_rec_end()を新設) ┃
┃ ┃
┃・m_save()はダミー命令となった。 ┃
┃ ┃
┃・m_total()はダミー命令となった。(ほぼ同機能のzm_calc_total()を新設) ┃
┃ ┃
┃・zm_work()のパラメータであるトラック番号の有効範囲は1~80から0~65534に ┃
┃ 変更にされた。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
3.3. X-BASIC音楽プログラムをZMSへ変換する
ZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令を利用したX-BASIC
音楽プログラムを次の方法でZMSに変換することが出来る。
1.プログラムの先頭、あるいはX-BASICコマンドプロンプトから
zm_switch(1,"TEMP.ZMS")
を入力する。1は変換出力スイッチの設定で、'TEMP.ZMS'は出力ファイルの
ファイルネームに相当する。
2.変換したいX-BASIC音楽プログラムをRUNする。
以上の手順でZMSが出力される。
変換できるのはZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令のみで
ZMUSIC Ver.3.0用のX-BASIC外部関数「MUSICZ3.FNC」の命令は変換できない。
3.4. コマンドの使用にあたっての注意
MIDI楽器専用のコマンドは場合によっては楽器のメモリを書き換える。
十分に楽器側のマニュアルを読んでから実行すること。楽器側に大切なデータが
存在する場合は、楽器のメモリをファイルに保存しておくとよい(MEASURE9参照)。
3.5. MUSICZ3.FNC命令一覧
[注意]
備考欄の
setup(7):Output Assign (0~4:Dry,Rev,Cho,Dir1,Dir2)
といった表記は実際にsetup(7)に格納すべき値が0~4で、これに対応する
音源上でのパラメータがDry,Rev,Cho,Dir1,Dir2ということを表している。
つまりこの例でいけば、0がDryに、1がRev、2がChoに対応するということ。
*-----------------------------------------------------------------------------
zm_detect( mode )
*-----------------------------------------------------------------------------
機能 MUSICZ.FNC(Ver.2.0)命令実行におけるエラーの発生場所検出精度設定
引数 int mode:0=通常モード 1=高精度モード
戻り値 なし
備考 Ver.2.0のMUSICZ.FNCの命令でエラーが発生してもm_play()の部分で
「コンパイラでエラーを発生した」
としか報告されない。
本命例で高精度設定にすると行単位でエラーを検出できるようになるが
コンパイル時間が著しく長くなる(MUSICZ.FNC(Ver.2.0)時と比べて4~8倍)。
(Ver.2.0以前とVer.3.0以降ではコンパイル方式がまったく違うため、その
エミュレーションに手間がかかってしまう。)
MUSICZ3.FNC(Ver.3.0)の命令のエラー検出精度はこの命令による設定とは
無関係に、常に、この命令でいう高精度モードで行われ、行単位でエラーが
検出される。
*-----------------------------------------------------------------------------
zm_switch( sw, fn )
*-----------------------------------------------------------------------------
機能 ZMSファイルの変換出力スイッチ
引数 char sw:0=出力OFF, 1=出力ON
str fn:出力ファイル名
戻り値 なし
備考 fnを省略するとデフォルトファイルネームとして'ZMUSIC.ZMS'が
カレントに作成される。
--------------------------------------------------------------------------------
zm_check_zmsc()
*-----------------------------------------------------------------------------
機能 Z-MUSICの常駐状態を検査する
引数 なし
戻り値 -1:エラー(常駐していなかった)
$3x4x:バージョンID
備考 バージョンIDはたとえばZMSC3.X Version 3.12が常駐していたならば
$3142が返ってくる。
*-----------------------------------------------------------------------------
zm_init( param )
*-----------------------------------------------------------------------------
機能 Z-MUSICと音源の初期化を行う
引数 int param:0(dummy)
戻り値 Z-MUSICのバージョンID
備考 paramは将来拡張用でかならず0を設定
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
*-----------------------------------------------------------------------------
zm_assign( device, track)
*-----------------------------------------------------------------------------
機能 チャンネルとトラックの割り付けを設定する
引数 int device(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int device(下位16ビット):チャンネル番号0-15
int track:トラック番号0-65534
戻り値 0:正常終了
0以外:エラーコード
備考 カレントMIDIはMIDIインターフェース番号を指定しない場合の
デフォルトとなるものでzm_current_midi_out()で設定する
*-----------------------------------------------------------------------------
zm_vget( timbre, mode, buffer)
*-----------------------------------------------------------------------------
機能 FM音源音色を取り出す
引数 int timbre:0-32767
int mode:0=OPMDRV.X互換,1=AL/FB分離方式
dim char buffer(4,10):音色データ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char buffer(4,10)で表される音色データの書式(m,n)は以下のとおり。
音色フォーマット(OPMDRV.X互換方式)
(0,0):AF(フィードバック/アルゴリズム) (0~63)
(0,1):OM(スロットマスク) (0~15)
(0,2):WF(ウェーヴフォーム) (0~3)
(0,3):SYC(シンクロ) (0,1)
(0,4):SPD(スピード) (0~255)
(0,5):PMD (0~127)
(0,6):AMD (0~127)
(0,7):PMS (0~7)
(0,8):AMS (0~3)
(0,9):PAN (0~3)
(0,10):DUMMY
(1,0):OP1, (2,0):OP2, (3,0):OP3, (4,0):OP4 AR(アタックレート) (0~31)
(1,1):OP1, (2,1):OP2, (3,1):OP3, (4,1):OP4 1DR(1stディケイレート) (0~31)
(1,2):OP1, (2,2):OP2, (3,2):OP3, (4,2):OP4 2DR(2ndディケイレート) (0~31)
(1,3):OP1, (2,3):OP2, (3,3):OP3, (4,3):OP4 RR(リリースレート) (0~15)
(1,4):OP1, (2,4):OP2, (3,4):OP3, (4,4):OP4 1DL(1stディケイレベル) (0~15)
(1,5):OP1, (2,5):OP2, (3,5):OP3, (4,5):OP4 TL(トータルレベル) (0~127)
(1,6):OP1, (2,6):OP2, (3,6):OP3, (4,6):OP4 KS(キースケーリング) (0~3)
(1,7):OP1, (2,7):OP2, (3,7):OP3, (4,7):OP4 MUL(フェーズマルチプライ) (0~15)
(1,8):OP1, (2,8):OP2, (3,8):OP3, (4,8):OP4 DT1(ディチューン1) (0~7)
(1,9):OP1, (2,9):OP2, (3,9):OP3, (4,9):OP4 DT2(ディチューン2) (0~3)
(1,10):OP1,(2,10):OP2,(3,10):OP3,(4,10):OP4 AME(AMSイネーブル) (0,1)
音色フォーマット(AL/FB分離方式)
(0,0):OP1, (1,0):OP2, (2,0):OP3, (3,0):OP4 AR(アタックレート) (0~31)
(0,1):OP1, (1,1):OP2, (2,1):OP3, (3,1):OP4 1DR(1stディケイレート) (0~31)
(0,2):OP1, (1,2):OP2, (2,2):OP3, (3,2):OP4 2DR(2ndディケイレート) (0~31)
(0,3):OP1, (1,3):OP2, (2,3):OP3, (3,3):OP4 RR(リリースレート) (0~15)
(0,4):OP1, (1,4):OP2, (2,4):OP3, (3,4):OP4 1DL(1stディケイレベル) (0~15)
(0,5):OP1, (1,5):OP2, (2,5):OP3, (3,5):OP4 TL(トータルレベル) (0~127)
(0,6):OP1, (1,6):OP2, (2,6):OP3, (3,6):OP4 KS(キースケーリング) (0~3)
(0,7):OP1, (1,7):OP2, (2,7):OP3, (3,7):OP4 MUL(フェーズマルチプライ) (0~15)
(0,8):OP1, (1,8):OP2, (2,8):OP3, (3,8):OP4 DT1(ディチューン1) (0~7)
(0,9):OP1, (1,9):OP2, (2,9):OP3, (3,9):OP4 DT2(ディチューン2) (0~3)
(0,10):OP1,(1,10):OP2,(2,10):OP3,(3,10):OP4 AME(AMSイネーブル) (0,1)
(4,0):AL(アルゴリズム) (0~7)
(4,1):FB(フィードバック) (0~7)
(4,2):OM(スロットマスク) (0~15)
(4,3):PAN (0~3)
(4,4):WF(ウェーヴフォーム) (0~3)
(4,5):SYC(シンクロ) (0,1)
(4,6):SPD(スピード) (0~255)
(4,7):PMD (0~127)
(4,8):AMD (0~127)
(4,9):PMS (0~7)
(4,10):AMS (0~3)
*-----------------------------------------------------------------------------
zm_vset( timbre, mode, buffer)
*-----------------------------------------------------------------------------
機能 FM音源音色を登録する
引数 int timbre:0-32767
int mode:0=OPMDRV.X互換,1=AL/FB分離方式
dim char buffer(4,10):音色データ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 音色フォーマットに付いてはzm_vget()とまったく同じ
*-----------------------------------------------------------------------------
zm_tempo( tempo, mode )
*-----------------------------------------------------------------------------
機能 テンポを設定する
引数 int tempo:テンポの値(1分間の4分音符の数),-1テンポ取得のみを行う
int mode:0=ZMUSICに登録する(通常)
-1=単なるテンポの変更でZMUSICには登録しない
戻り値 設定前のテンポとタイマ値が戻ってくる
上位16ビット:タイマ値
下位16ビット:テンポ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:20~32767
TIMER-B:20~5000
YM3802:1~32767
*-----------------------------------------------------------------------------
zm_set_timer_value( timer, mode )
*-----------------------------------------------------------------------------
機能 テンポをタイマ値で設定する
引数 int timer:タイマの値,-1タイマ値取得のみを行う
int mode:0=ZMUSICに登録する(通常)
-1=単なるテンポの変更でZMUSICには登録しない
戻り値 設定前のテンポとタイマ値が戻ってくる
上位16ビット:テンポ値
下位16ビット:タイマ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:0~1023
TIMER-B:0~255
YM3802:0~8191
*-----------------------------------------------------------------------------
zm_play( track)
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 dim int(char) track(~):演奏を開始したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_play_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏開始制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_play2()
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 なし
戻り値 なし
備考 現在ZMUSICの演奏データバッファに存在する演奏データをはじめから
(共通コマンドの実行も含めて)演奏する。
*-----------------------------------------------------------------------------
zm_play_again()
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 なし
戻り値 なし
備考 前回行われたzm_play()を再び実行する
*-----------------------------------------------------------------------------
zm_play_status_all_ch( channel_list )
*-----------------------------------------------------------------------------
機能 全チャンネル演奏状態検査
引数 dim int(char) channel_list(~):検査結果を格納するための配列
戻り値 なし
備考 演奏状態であるチャンネルIDがdim int channel_list()に格納される。
{ チャンネルID,チャンネルID,...,-1 }
のような構成を取る
バッファサイズは演奏している(トラック数+1)*4バイト必要。
なおチャンネルIDは
(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
(下位16ビット):チャンネル番号0-15
で表される。
*-----------------------------------------------------------------------------
zm_play_status_all_tr( track_list )
*-----------------------------------------------------------------------------
機能 全トラック演奏状態検査
引数 dim int(char) track_list(~):検査結果を格納するための配列
戻り値 なし
備考 演奏状態であるトラック番号(0-65534の範囲)がdim int track_list()に
格納される。
{ トラック番号*65536+トラック番号,トラック番号*65536+トラック番号,…,-1 }
のような構成を取る
配列の要素数は演奏している(トラック数+1)必要。
*-----------------------------------------------------------------------------
zm_play_status_ch( channel )
*-----------------------------------------------------------------------------
機能 チャンネル演奏状態検査
引数 int channel(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int channel(下位16ビット):チャンネル番号0-15
戻り値 0:演奏されていない
0以外:演奏されている
*-----------------------------------------------------------------------------
zm_play_status_tr( track )
*-----------------------------------------------------------------------------
機能 トラック演奏状態検査
引数 int track:検査対象トラック番号(0-65534)
戻り値 0:演奏されていない
0以外:演奏されている
*-----------------------------------------------------------------------------
zm_stop( track )
*-----------------------------------------------------------------------------
機能 演奏停止制御
引数 dim int(char) track(~):演奏を停止したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_stop_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏停止制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_cont( track)
*-----------------------------------------------------------------------------
機能 演奏再開制御
引数 dim int(char) track(~):演奏を再開したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_cont_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏再開制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_atoi( track )
*-----------------------------------------------------------------------------
機能 演奏トラックデータの先頭アドレス取得
引数 int track:トラック番号0-65534
戻り値 0:エラー
0以外:指定演奏トラックの先頭アドレス
*-----------------------------------------------------------------------------
zm_set_master_clock( mstrclk )
*-----------------------------------------------------------------------------
機能 拍子,メトロノーム速度,調号,全音符の絶対音長の設定
引数 int side:0=音楽演奏,1=効果音
dim char(int) mstrclk(7):拍子,メトロノーム速度,調号,全音符の絶対音長を
格納した配列
戻り値 なし
備考 side=0で通常音楽演奏側の設定、side=1で効果音演奏側の設定となる。
dim char mstrclkは
dim char mstrclk(7)={
meter_n, /*拍子分子(1-255)*/
meter_d, /*拍子分母(1-255)*/
metronome, /*音楽的音長(1-255)*/
dummy,
key1, /*調号1(0:C,負値:♭の数,正値:♯の数)*/
key2, /*調号2(Major=0,Minor=1)*/
master_clock_H, /*全音符の絶対音長(1-65535)の上位16ビット*/
master_clock_L /*全音符の絶対音長(1-65535)の下位16ビット*/
};
*-----------------------------------------------------------------------------
zm_play_zmd( size, zmd )
*-----------------------------------------------------------------------------
機能 ZMDの演奏
引数 int size:ZMDのサイズ(ヘッダ$1A,'ZmuSiC',$30の分は含まれていても
含まれていなくてもどちらでもよい)
0を設定するとZMUSIC本体のバッファへ演奏データを
取り込む動作を省略する。
dim char(int) zmd(~):ZMDを格納している配列(ヘッダを含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 int size=0とするには、dim char zmd()からの領域の存在が演奏中も
保証されることを前提とする。
*-----------------------------------------------------------------------------
zm_play_zmd_se( zmd )
*-----------------------------------------------------------------------------
機能 ZMDを効果音として演奏する
引数 dim char(int) zmd(~):ZMDの格納配列(ヘッダを含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 dim char zmd()からの領域の存在は、演奏中も保証されなければならない。
*-----------------------------------------------------------------------------
zm_se_play( zmd )
*-----------------------------------------------------------------------------
機能 効果音ZMDの演奏
引数 dim char(int) zmd(~):ZMDの格納配列(トラック・チャンネル情報テーブルから)
戻り値 0:正常終了
0以外:エラーコード
備考 dim char zmd()からの領域の存在は、演奏中も保証されなければならない。
トラック・チャンネル情報テーブルに付いてはMEASURE12を参照。
*-----------------------------------------------------------------------------
zm_se_adpcm1(data_type,volume,frq,pan,size,priority,ch,adpcm)
*-----------------------------------------------------------------------------
機能 (AD)PCM効果音の演奏
引数 char data_type:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
char volume:音量(0-127,64:標準)
char frq:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
char pan:パンポット(0-3 / $80+0-127)
int size:再生するADPCMのデータサイズ
int priority:効果音優先度(0-255/0が最も低い)
int ch:再生チャンネル(0-15)
dim char(int) adpcm(~):(AD)PCMデータを格納している配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char adpcm()からの領域の存在は、演奏中も保証されなければならない。
*-----------------------------------------------------------------------------
zm_se_adpcm2(data_type,volume,frq,pan,data_number,priority,ch)
*-----------------------------------------------------------------------------
機能 ZMUSICに登録してある(AD)PCM効果音の演奏
引数 char data_type:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
char volume:音量(0-127,64:標準)
char frq:パンポット(0-3 / $80+0-127)
char pan:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
int data_number:PCMデータ番号(d15が1ならば音色番号($8000+0-32767),
0ならばノート番号(0-32767)指定)
int priority:効果音優先度(0-255/0が最も低い)
int ch:再生チャンネル(0-15)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_intercept_play( mode )
*-----------------------------------------------------------------------------
機能 演奏開始制御の遮断制御
引数 int mode:-1 演奏開始の遮断を行う
0 演奏開始の遮断の解除と演奏開始
1 演奏開始の遮断の解除
戻り値 なし
備考 演奏開始の遮断を設定するとzm_play()などの演奏開始命令を実行しても
演奏が開始されなくなる。
*-----------------------------------------------------------------------------
zm_current_midi_in( port )
*-----------------------------------------------------------------------------
機能 カレントMIDI-IN端子の設定
引数 int port:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 以前のカレントMIDI-INのポート番号(0-3)
*-----------------------------------------------------------------------------
zm_current_midi_out( port )
*-----------------------------------------------------------------------------
機能 カレントMIDI-OUT端子の設定
引数 int port:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 以前のカレントMIDI-OUTのポート番号(0-3)
*-----------------------------------------------------------------------------
zm_midi_transmission( port,size,midi )
*-----------------------------------------------------------------------------
機能 MIDIデータメッセージの送信
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:送信データサイズ
0とした場合はテキスト型MIDIデータ(MDD)とみなして送信する
0以外ではバイナリデータとみなして送信する
dim char(int) midi(~):送信するMIDIデータを格納した配列
戻り値 送信データの8ビット加算合計値
備考 MDDとはZMUSIC v2.0相当でMIDIファイルの標準としていたフォーマット。
$0d,$0aで始まり16進数のテキストでMIDIメッセージを記述したファイル。
送信データサイズを指定した場合はバイナリのMIDIメッセージと
みなして送信される。ZMUSICが扱えるバイナリのMIDIメッセージには
スタンダードMIDIファイル(FORMAT0)と単なるバイナリデータ列の
2種類がありこのデータの種類の判別はZMUSICが自動で行う。
*-----------------------------------------------------------------------------
zm_exclusive( port,size,id,midi )
*-----------------------------------------------------------------------------
機能 エクスクルーシブメッセージの送信
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:送信データサイズ
int id:d0-d7=MODEL ID(0-127)
d8-d15=DEVICE ID(0-127)
d16-d23=MAKER ID(0-127)
dim char(int) midi(~):送信するMIDIデータを格納した配列
戻り値 なし
備考 エクスクルーシブヘッダの$F0とEOXの$F7は自動送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
MAKER IDをRoland($41)とした場合はデータ列をローランド・エクスクルーシブ
フォーマットのデータとみなし、コマンドメッセージ(DT2:$12)やチェックサム
バイト付きで送信する。
MAKER IDをYAMAHA($43)とした場合はデータ列をヤマハ・エクスクルーシブ
フォーマットのデータとみなし、データ長やチェックサムバイト付きで送信す
る。
*-----------------------------------------------------------------------------
zm_set_eox_wait( port,wait )
*-----------------------------------------------------------------------------
機能 EOX送信後のウェイトを設定する
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int wait:0-65535
戻り値 それまでのウェイト値
*-----------------------------------------------------------------------------
zm_midi_inp1( port,mode )
*-----------------------------------------------------------------------------
機能 MIDIデータの1バイト入力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int mode:0 1回受信を試みてすぐ帰還
1 受信するまで無限ループ
戻り値 d31=1 読みこぼし発生 0:正常読みだし
d15=1 データ無し 0:データ有り
d0-d7 読みだしデータ
*-----------------------------------------------------------------------------
zm_midi_out1( port,data )
*-----------------------------------------------------------------------------
機能 MIDIデータの1バイト出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
char data:送信データ(0-255)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_midi_rec( port )
*-----------------------------------------------------------------------------
機能 MIDIデータのレコーディング開始
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_midi_rec_end( port )
*-----------------------------------------------------------------------------
機能 MIDIデータのレコーディング終了
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_gs_reset( port, id )
*-----------------------------------------------------------------------------
機能 GS音源の初期化
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_gs_partial_reserve( port,id,rsv )
*-----------------------------------------------------------------------------
機能 GS音源のパーシャルリザーブ
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
dim char(int) rsv(15):パート1~パート16までのパーシャルリザーブ値が
格納されている配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rsv()にパーシャルリザーブ値を16パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
rsv(0)=パート1,rsv(1)=パート2…,rsv(15)=パート16というふうに対応する。
なお、パート10はリズムパートに対応する。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_gs_reverb( port,size,id,rvb )
*-----------------------------------------------------------------------------
機能 GS音源のリバーブ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-7)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(0-6):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは7以内で、
指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
rvb(1):REVERB CHARACTER ($00~$07)
rvb(2):REVERB PRE-LPF ($00~$07)
rvb(3):REVERB LEVEL ($00~$7F)
rvb(4):REVERB TIME ($00~$7F)
rvb(5):REVERB DELAY FEEDBACK ($00~$7F)
rvb(6):REVERB SEND LEVEL TO CHORUS ($00~$7F)
(SC55マニュアルp79参照)
*-----------------------------------------------------------------------------
zm_gs_chorus( port,size,id,cho )
*-----------------------------------------------------------------------------
機能 GS音源のコーラス・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コーラスパラメータ・データサイズ(1-8)
int id:DEVICE ID(0-127,-1:current)
dim char(int) cho(0-7):コーラスパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char cho()からの領域にコーラスパラメータを記述しておく。
sizeは8以内で指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
cho(0):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
cho(1):CHORUS PRE-LPF ($00~$07)
cho(2):CHORUS LEVEL ($00~$7F)
cho(3):CHORUS FEEDBACK ($00~$7F)
cho(4):CHORUS DELAY ($00~$7F)
cho(5):CHORUS RATE ($00~$7F)
cho(6):CHORUS DEPTH ($00~$7F)
cho(7):CHORUS SEND LEVEL TO REVERB ($00~$7F)
(SC55マニュアルp79参照)
*-----------------------------------------------------------------------------
zm_gs_part_parameter( port,size,pt_id,param )
zm_gs_part_setup( port,size,pt_id,param )
*-----------------------------------------------------------------------------
機能 GS音源のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-119)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PART NUMBER(1-16)
dim char(int) param(0-118):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。sizeは119以内で
指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):Rx CHANNEL (1~16,17=OFF)
param(1):Rx PITCH BEND (0~1:OFF/ON)
param(2):Rx CH PRESSURE(CAf) (0~1:OFF/ON)
param(3):Rx PROGRAM CHANGE (0~1:OFF/ON)
param(4):Rx CONTROL CHANGE (0~1:OFF/ON)
param(5):Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
param(6):Rx NOTE MESSAGE (0~1:OFF/ON)
param(7):Rx RPN (0~1:OFF/ON)
param(8):Rx NRPN (0~1:OFF/ON)
param(9):Rx MODURATION (0~1:OFF/ON)
param(10):Rx VOLUME (0~1:OFF/ON)
param(11):Rx PANPOT (0~1:OFF/ON)
param(12):Rx EXPRESSION (0~1:OFF/ON)
param(13):Rx HOLD1 (0~1:OFF/ON)
param(14):Rx PORTAMENTO (0~1:OFF/ON)
param(15):Rx SOSTENUTO (0~1:OFF/ON)
param(16):Rx SOFT (0~1:OFF/ON)
param(17):MONO/POLY MODE (0~1:MONO/POLY)
param(18):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
param(19):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
param(20):PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
param(21):PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
param(22):PITCH OFFSET FINE(lower) 〃
param(23):PART LEVEL (0~127)
param(24):VELOCITY SENSE DEPTH (0~127)
param(25):VELOCITY SENSE OFFSET (0~127)
param(26):PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
param(27):KEY RANGE LOW (0~127:C-1~G9)
param(28):KEY RANGE HIGH (0~127:C-1~G9)
param(29):CC1 CONTROL NUMBER (0~127)
param(30):CC2 CONTROL NUMBER (0~127)
param(31):CHORUS SEND DEPTH (0~127)
param(32):REVERB SEND DEPTH (0~127)
param(33):Vibrato rate ($0E~$72:-50~+50)
param(34):Vibrato depth ($0E~$72:-50~+50)
param(35):TVF cutoff freq. ($0E~$50:-50~+16)
param(36):TVF resonance ($0E~$72:-50~+50)
param(37):TVF&TVA Env.attack ($0E~$72:-50~+50)
param(38):TVF&TVA Env.decay ($0E~$72:-50~+50)
param(39):TVF&TVA Env.release ($0E~$72:-50~+50)
param(40):Vibrato delay ($0E~$72:-50~+50)
param(41):SCALE TUNING C ($00~$7F:-64~+63[cent])
param(42):SCALE TUNING C# ($00~$7F:-64~+63[cent])
param(43):SCALE TUNING D ($00~$7F:-64~+63[cent])
param(44):SCALE TUNING D# ($00~$7F:-64~+63[cent])
param(45):SCALE TUNING E ($00~$7F:-64~+63[cent])
param(46):SCALE TUNING F ($00~$7F:-64~+63[cent])
param(47):SCALE TUNING F# ($00~$7F:-64~+63[cent])
param(48):SCALE TUNING G ($00~$7F:-64~+63[cent])
param(49):SCALE TUNING G# ($00~$7F:-64~+63[cent])
param(50):SCALE TUNING A ($00~$7F:-64~+63[cent])
param(51):SCALE TUNING A# ($00~$7F:-64~+63[cent])
param(52):SCALE TUNING B ($00~$7F:-64~+63[cent])
param(53):MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
param(54):MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(55):MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(56):MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(57):MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(58):MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(59):MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(60):MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(61):MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(62):MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(63):MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(64):BEND PITCH CONTROL ($28~$58:-24~+24[semitone])
param(65):BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(66):BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(67):BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(68):BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(69):BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(70):BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(71):BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(72):BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(73):BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(74):BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(75):CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
param(76):CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(77):CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(78):CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(79):CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(80):CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(81):CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(82):CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(83):CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(84):CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(85):CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(86):PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
param(87):PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(88):PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(89):PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(90):PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(91):PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(92):PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(93):PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(94):PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(95):PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(96):PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(97):CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
param(98):CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(99):CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(100):CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(101):CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(102):CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(103):CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(104):CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(105):CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(106):CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(107):CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(108):CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
param(109):CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(110):CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(111):CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(112):CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(113):CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(114):CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(115):CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(116):CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(117):CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(118):CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
(SC55のマニュアルp75,p79~p80参照)
*-----------------------------------------------------------------------------
zm_gs_drum_setup( port,size,dr_id,param )
*-----------------------------------------------------------------------------
機能 GS音源のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=MAP NUMBER(0-1)
dim char(int) param(0-7):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にドラム・セットアップ・パラメータを記述しておく。
sizeは8以内で指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0~127)
param(1):LEVEL (0~127)
param(2):ASSIGN GROUP NUMBER (0:NON,1~127)
param(3):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
param(4):REVERB DEPTH (0~127:0.0~1.0)
param(5):CHORUS DEPTH (0~127:0.0~1.0)
param(6):Rx NOTE OFF (0~1:OFF/ON)
param(7):Rx NOTE ON (0~1:OFF/ON)
(SC55マニュアルp75,p82参照)
*-----------------------------------------------------------------------------
zm_gs_drum_name( port,size,mp_id,name );
*-----------------------------------------------------------------------------
機能 GS音源のドラム・セット名設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int mp_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=MAP NUMBER(0,1)
str name:ドラム・セット名文字列格納アドレス
戻り値 0:正常終了
0以外:エラーコード
備考 文字列は12文字以内でchar *nameからの領域に文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
(SC55マニュアルp82参照)
*-----------------------------------------------------------------------------
zm_gs_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 GS音源の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-32)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは32文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_gs_display( port,id,pattern )
*-----------------------------------------------------------------------------
機能 GS音源の画面へのドットパターン出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim int(char) pattern(7):ドットパターン格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim int pattern()にドットパターンを記述しておく。
フォーマットは
{ 1段目のドットパターン*65536+2段目のドットパターン,
3段目のドットパターン*65536+3段目のドットパターン,
5段目のドットパターン*65536+4段目のドットパターン,
:
15段目のドットパターン*65536+16段目のドットパターン}
に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
例
/*SC55の画面に"善"を表示する*/
dim int d(7)={ %0001000000010000*65536+%0000100000100000,
%0111111111111100*65536+%0000000100000000,
%0011111111111000*65536+%0000000100000000,
%0111111111111100*65536+%0001000100010000,
%0000100100100000*65536+%1111111111111110,
%0000000000000000*65536+%0011111111111000,
%0010000000001000*65536+%0010000000001000,
%0011111111111000*65536+%0010000000001000}
gs_display(-1,-1,d)
*-----------------------------------------------------------------------------
zm_gm_system_on( port )
*-----------------------------------------------------------------------------
機能 GM音源のリセット
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_sc88_mode_set( port,md_id )
*-----------------------------------------------------------------------------
機能 SC88モード設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int md_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=SC88 MODE(0:Single, 1:Double)
戻り値 0:正常終了
0以外:エラーコード
備考 idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_sc88_reverb( port,size,id,rvb )
*-----------------------------------------------------------------------------
機能 SC88のリバーブ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-8)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(7):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは8以内で、
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
rvb(1):REVERB CHARACTER ($00~$07)
rvb(2):REVERB PRE-LPF ($00~$07)
rvb(3):REVERB LEVEL ($00~$7F)
rvb(4):REVERB TIME ($00~$7F)
rvb(5):REVERB DELAY FEEDBACK ($00~$7F)
rvb(6):REVERB SEND LEVEL TO CHORUS ($00~$7F/SC88ではダミー)
rvb(7):REVERB PRE-DELAY TIME ($00~$7F)
(SC88VLマニュアルp77参照)
*-----------------------------------------------------------------------------
zm_sc88_chorus( port,size,id,cho )
*-----------------------------------------------------------------------------
機能 SC88のコーラス・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コーラスパラメータ・データサイズ(1-9)
int id:DEVICE ID(0-127,-1:current)
dim char(int) cho(8):コーラスパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char cho()にコーラスパラメータを記述しておく。sizeは9以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
cho(0):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
cho(1):CHORUS PRE-LPF ($00~$07)
cho(2):CHORUS LEVEL ($00~$7F)
cho(3):CHORUS FEEDBACK ($00~$7F)
cho(4):CHORUS DELAY ($00~$7F)
cho(5):CHORUS RATE ($00~$7F)
cho(6):CHORUS DEPTH ($00~$7F)
cho(7):CHORUS SEND LEVEL TO REVERB ($00~$7F)
cho(8):CHORUS SEND LEVEL TO DELAY ($00~$7F)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_delay( port,size,id,dly )
*-----------------------------------------------------------------------------
機能 SC88のディレイ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ディレイパラメータ・データサイズ(1-11)
int id:DEVICE ID(0-127,-1:current)
dim char dly(0-10):ディレイパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char dly()にリバーブパラメータを記述しておく。sizeは11以内で、
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
dly(0):DELAY MACRO 00:Delay1,01:Delay2,02:Delay3,03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
dly(1):DELAY PRE-LPF ($00~$07)
dly(2):DELAY TIME CENTER ($01~$73:0.1ms~sec)
dly(3):DELAY TIME RATIO LEFT ($01~$78:4~500%)
dly(4):DELAY TIME RATIO RIGHT ($01~$78:4~500%)
dly(5):DELAY LEVEL CENTER ($00~$7F)
dly(6):DELAY LEVEL LEFT ($00~$7F)
dly(7):DELAY LEVEL RIGHT ($00~$7F)
dly(8):DELAY LEVEL ($00~$7F)
dly(9):DELAY FEEDBACK ($00~$7F:-64~+63)
dly(10):DELAY SENDLEVEL TO REVERB ($00~$7F)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_equalizer( port,size,id,eql )
*-----------------------------------------------------------------------------
機能 SC88のイコライザ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:イコライザパラメータ・データサイズ(1-4)
int id:DEVICE ID(0-127,-1:current)
dim char eql(0-3):イコライザパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char eql()にコーラスパラメータを記述しておく。sizeは4以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
eql(0):EQ LOW FREQ (0,1:200Hz,400Hz)
eql(1):EQ LOW GAIN ($34~$4c:-12~+12dB)
eql(2):EQ HIGH FREQ (0,1:3kHz,6kHz)
eql(3):EQ HIGH GAIN ($34~$4c:-12~+12dB)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_part_parameter( port,size,pt_id,param )
*-----------------------------------------------------------------------------
機能 SC88のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-127)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PART NUMBER(1-16)
dim char param(0-126):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。sizeは127以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):Rx CHANNEL (1~16,17=OFF)
param(1):Rx PITCH BEND (0~1:OFF/ON)
param(2):Rx CH PRESSURE(CAf) (0~1:OFF/ON)
param(3):Rx PROGRAM CHANGE (0~1:OFF/ON)
param(4):Rx CONTROL CHANGE (0~1:OFF/ON)
param(5):Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
param(6):Rx NOTE MESSAGE (0~1:OFF/ON)
param(7):Rx RPN (0~1:OFF/ON)
param(8):Rx NRPN (0~1:OFF/ON)
param(9):Rx MODURATION (0~1:OFF/ON)
param(10):Rx VOLUME (0~1:OFF/ON)
param(11):Rx PANPOT (0~1:OFF/ON)
param(12):Rx EXPRESSION (0~1:OFF/ON)
param(13):Rx HOLD1 (0~1:OFF/ON)
param(14):Rx PORTAMENTO (0~1:OFF/ON)
param(15):Rx SOSTENUTO (0~1:OFF/ON)
param(16):Rx SOFT (0~1:OFF/ON)
param(17):MONO/POLY MODE (0~1:MONO/POLY)
param(18):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
param(19):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
param(20):PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
param(21):PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
param(22):PITCH OFFSET FINE(lower) 〃
param(23):PART LEVEL (0~127)
param(24):VELOCITY SENSE DEPTH (0~127)
param(25):VELOCITY SENSE OFFSET (0~127)
param(26):PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
param(27):KEY RANGE LOW (0~127:C-1~G9)
param(28):KEY RANGE HIGH (0~127:C-1~G9)
param(29):CC1 CONTROL NUMBER (0~127)
param(30):CC2 CONTROL NUMBER (0~127)
param(31):CHORUS SEND LEVEL (0~127)
param(32):REVERB SEND LEVEL (0~127)
param(33):Rx BANK SELECT (0:OFF,1:ON)
param(34):Rx BANK SELECT LSB (0:OFF,1:ON)
param(35):PITCH FINE TUNE(Upper) ($00 00~$40 00~$7f 7f:-100~0~+100)
param(36):PITCH FINE TUNE(Lower)
param(37):DELAY SEND LEVEL (0~127)
param(38):Vibrato rate ($00~$7f:-64~+63)
param(39):Vibrato depth ($00~$7f:-64~+63)
param(40):TVF cutoff freq. ($00~$7f:-64~+63)
param(41):TVF resonance ($00~$7f:-64~+63)
param(42):TVF&TVA Env.attack ($00~$7f:-64~+63)
param(43):TVF&TVA Env.decay ($00~$7f:-64~+63)
param(44):TVF&TVA Env.release ($00~$7f:-64~+63)
param(45):Vibrato delay ($00~$7f:-64~+63)
param(46):SCALE TUNING C ($00~$7F:-64~+63[cent])
param(47):SCALE TUNING C# ($00~$7F:-64~+63[cent])
param(48):SCALE TUNING D ($00~$7F:-64~+63[cent])
param(49):SCALE TUNING D# ($00~$7F:-64~+63[cent])
param(50):SCALE TUNING E ($00~$7F:-64~+63[cent])
param(51):SCALE TUNING F ($00~$7F:-64~+63[cent])
param(52):SCALE TUNING F# ($00~$7F:-64~+63[cent])
param(53):SCALE TUNING G ($00~$7F:-64~+63[cent])
param(54):SCALE TUNING G# ($00~$7F:-64~+63[cent])
param(55):SCALE TUNING A ($00~$7F:-64~+63[cent])
param(56):SCALE TUNING A# ($00~$7F:-64~+63[cent])
param(57):SCALE TUNING B ($00~$7F:-64~+63[cent])
param(58):MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
param(59):MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(60):MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(61):MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(62):MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(63):MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(64):MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(65):MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(66):MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(67):MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(68):MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(69):BEND PITCH CONTROL ($40~$58:-24~+24[semitone])
param(70):BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(71):BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(72):BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(73):BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(74):BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(75):BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(76):BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(77):BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(78):BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(79):BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(80):CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
param(81):CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(82):CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(83):CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(84):CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(85):CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(86):CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(87):CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(88):CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(89):CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(90):CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(91):PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
param(92):PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(93):PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(94):PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(95):PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(96):PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(97):PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(98):PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(99):PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(100):PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(101):PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(102):CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
param(103):CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(104):CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(105):CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(106):CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(107):CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(108):CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(109):CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(110):CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(111):CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(112):CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(113):CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
param(114):CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
param(115):CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
param(116):CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(117):CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
param(118):CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
param(119):CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
param(120):CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
param(121):CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
param(122):CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
param(123):CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
param(124):TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
param(125):TONE MAP0 NUMBER (1:SC55,2:SC88)
param(126):EQ ON/OFF (0:OFF,1:ON)
(SC88VLマニュアルp79~p81参照)
*-----------------------------------------------------------------------------
zm_sc88_drum_setup( port,size,dr_id,param )
*-----------------------------------------------------------------------------
機能 SC88のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-9)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=MAP NUMBER(0-1)
dim char param(0-8):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にドラム・セットアップ・パラメータを記述しておく。
sizeは9以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0~127)
param(1):LEVEL (0~127)
param(2):ASSIGN GROUP NUMBER (0:NON,1~127)
param(3):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
param(4):REVERB DEPTH (0~127:0.0~1.0)
param(5):CHORUS DEPTH (0~127:0.0~1.0)
param(6):Rx NOTE OFF (0~1:OFF/ON)
param(7):Rx NOTE ON (0~1:OFF/ON)
param(8):DELAY SEND LEVEL (0-127:0.0~1.0)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_drum_name( port,size,mp_id,name );
*-----------------------------------------------------------------------------
機能 SC88のドラム・セット名設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int mp_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=MAP NUMBER(0,1/$80,$81)
str name:ドラム・セット名文字列格納アドレス
戻り値 0:正常終了
0以外:エラーコード
備考 文字列は12文字以内でchar *nameからの領域に文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
MAP NUMBER=$80がユーザードラムセット65,MAP NUMBER=$81が
ユーザードラムセット66に対応する。
(SC88マニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_user_inst( port,size,ui_id,param )
*-----------------------------------------------------------------------------
機能 SC88のユーザー音色の設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ユーザー音色パラメータ・データサイズ(1-11)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=PROGRAM NUMBER(0-127)
d24-d31=BANK NUMBER(0-1)
dim char param(0-10):ユーザー音色・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にユーザー音色・パラメータを記述しておく。
sizeは11以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):SOURCE TONE#(MAP) (1,2)
param(1):BANK NUMBER MSB (0~127)
param(2):PROGRAM NUMBER (0~127)
param(3):Vibrato rate ($00~$7f:-64~+63)
param(4):Vibrato depth ($00~$7f:-64~+63)
param(5):TVF cutoff freq. ($00~$7f:-64~+63)
param(6):TVF resonance ($00~$7f:-64~+63)
param(7):TVF&TVA Env.attack ($00~$7f:-64~+63)
param(8):TVF&TVA Env.decay ($00~$7f:-64~+63)
param(9):TVF&TVA Env.release ($00~$7f:-64~+63)
param(10):Vibrato delay ($00~$7f:-64~+63)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_user_drum( port,size,ud_id,param )
*-----------------------------------------------------------------------------
機能 SC88のユーザードラムセットの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ユーザードラムセット・パラメータ・データサイズ(1-12)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=SET NUMBER(0-1)
dim char param(0-11):ユーザードラムセット・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 char *paramからの領域にユーザードラムセット・パラメータを記述しておく。
sizeは12以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0~127)
param(1):LEVEL (0~127)
param(2):ASSIGN GROUP NUMBER (0:NON,1~127)
param(3):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
param(4):REVERB DEPTH (0~127:0.0~1.0)
param(5):CHORUS DEPTH (0~127:0.0~1.0)
param(6):Rx NOTE OFF (0~1:OFF/ON)
param(7):Rx NOTE ON (0~1:OFF/ON)
param(8):DELAY SEND LEVEL (0-127:0.0~1.0)
param(9):SOURCE DRUM SET#(MAP) (1-2)
param(10):PROGRAM NUMBER (0-127)
param(11):SOURCE NOTE NUMBER (0-127)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_mt32_reset( port,id )
*-----------------------------------------------------------------------------
機能 MT32の初期化
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
備考 idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_partial_reserve( port,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のパーシャルリザーブ
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
dim char(int) rsv(8):パート1~パート9までのパーシャルリザーブ値が
格納されている配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rsv()にパーシャルリザーブ値を9パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
param(0)=パート1,param(1)=パート2…,param(9)=パート9というふうに対応する。
なお、パート9はリズムパートに対応する。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_reverb( port,size,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のリバーブパラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-3)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(0-2):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは3以内で、
指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
rvb(1):REVERB TIME (0~7)
rvb(2):REVERB LEVEL (0~7)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_part_setup( port,size,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-9)
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) param(0-8):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。
パートパラメータは
param(0)=パート1のMIDIチャンネル,param(1)=パート2のMIDIチャンネル…,
param(9)=リズムパートのMIDIチャンネル
という構成を取る
sizeは9以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_drum( port,size,dr_id,drum )
*-----------------------------------------------------------------------------
機能 MT32のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-4)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=NOTE NUMBER(24~87)
dim char(int) drum(0-3):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char drum()にドラム・セットアップ・パラメータを記述しておく。
sizeは4以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
drum(0):TIMBRE (0~63:i1~64,64~127:r1~64)
drum(1):OUTPUT LEVEL (0~100)
drum(2):PANPOT (0~14)
drum(3):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_common( port,size,cm_id,common )
*-----------------------------------------------------------------------------
機能 MT32のコモン・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コモン・パラメータ・データサイズ(1-4)
int cm_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PROGRAM NUMBER(1-64)
dim char(int) common(0-3):コモン・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char common()にコモン・パラメータを記述しておく。
sizeは4以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
common(0):Structure of Partial#1&2 (0~12:1~13)
common(1):Structure of Partial#3&4 (0~12:1~13)
common(2):PARTIAL MUTE (0~15)
common(3):ENV MODE (0~1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34,CM64マニュアルp29参照)
*-----------------------------------------------------------------------------
zm_mt32_partial( port,size,pl_id,partial )
*-----------------------------------------------------------------------------
機能 MT32のパーシャル・パラメータ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パーシャル・パラメータ・データサイズ(1-58)
int pl_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=PARTIAL NUMBER(1-4)
d24-d31=PROGRAM NUMBER(1-64)
dim char(int) partial(0-57):パーシャル・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char partial()にパーシャル・パラメータを記述しておく。
sizeは58以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
partial(0):WG PITCH COARSE (0~96:C1,C#1,~,C9)
partial(1):WG PITCH FINE (0~100:-50~+50)
partial(2):WG PITCH KEYFOLLOW (0~16:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
partial(3):WG PITCH BENDER SW (0~1:OFF/ON)
partial(4):WG WAVEFORM/PCM BANK (0~3:SQU1,SAW1,SQU2,SAW2)
partial(5):WG PCM WAVE (0~127:1~128)
partial(6):WG PULSE WIDTH (0~100)
partial(7):WG PW VELO SENS (0~14:-7~+7)
partial(8):P-ENV DEPTH (0~10)
partial(9):P-ENV VELO SENS (0~3)
partial(10):P-ENV TIME KEYF (0~4)
partial(11):P-ENV TIME 1 (0~100)
partial(12):P-ENV TIME 2 (0~100)
partial(13):P-ENV TIME 3 (0~100)
partial(14):P-ENV TIME 4 (0~100)
partial(15):P-ENV LEVEL 0 (0~100:-50~+50)
partial(16):P-ENV LEVEL 1 (0~100:-50~+50))
partial(17):P-ENV LEVEL 2 (0~100:-50~+50)
partial(18):P-ENV SUSTAIN LEVEL (0~100:-50~+50)
partial(19):END LEVEL (0~100:-50~+50)
partial(20):P-LFO RATE (0~100)
partial(21):P-LFO DEPTH (0~100)
partial(22):P-LFO MOD SENS (0~100)
partial(23):TVF CUTOFF FREQ (0~100)
partial(24):TVF RESONANCE (0~30)
partial(25):TVF KEYFOLLOW (0~14:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
partial(26):TVF BIAS POINT/DIR (0~127)
partial(27):TVF BIAS LEVEL (0~14:-7~+7)
partial(28):TVF ENV DEPTH (0~100)
partial(29):TVF ENV VELO SENS (0~100)
partial(30):TVF ENV DEPTH KEYF (0~4)
partial(31):TVF ENV TIME KEYF (0~4)
partial(32):TVF ENV TIME 1 (0~100)
partial(33):TVF ENV TIME 2 (0~100)
partial(34):TVF ENV TIME 3 (0~100)
partial(35):TVF ENV TIME 4 (0~100)
partial(36):TVF ENV TIME 5 (0~100)
partial(37):TVF ENV LEVEL 1 (0~100)
partial(38):TVF ENV LEVEL 2 (0~100)
partial(39):TVF ENV LEVEL 3 (0~100)
partial(40):TVF ENV SUSTAIN LEVEL (0~100)
partial(41):TVA LEVEL (0~100)
partial(42):TVA VELO SENS (0~100:-50~+50
partial(43):TVA BIAS POINT 1 (0~127)
partial(44):TVA BIAS LEVEL 1 (0~12:-12~0)
partial(45):TVA BIAS POINT 2 (0~127)
partial(46):TVA BIAS LEVEL 2 (0~12:-12~0)
partial(47):TVA ENV TIME KEYF (0~4)
partial(48):TVA ENV TIME V_FOLLOW (0~4)
partial(49):TVA ENV TIME 1 (0~100)
partial(50):TVA ENV TIME 2 (0~100)
partial(51):TVA ENV TIME 3 (0~100)
partial(52):TVA ENV TIME 4 (0~100)
partial(53):TVA ENV TIME 5 (0~100)
partial(54):TVA ENV LEVEL 1 (0~100)
partial(55):TVA ENV LEVEL 2 (0~100)
partial(56):TVA ENV LEVEL 3 (0~100)
partial(57):TVA ENV SUSTAIN LEVEL (0~100)
(MT32マニュアルp34,CM64マニュアルp29参照)
*-----------------------------------------------------------------------------
zm_mt32_patch( port,size,pt_id,patch )
*-----------------------------------------------------------------------------
機能 MT32のパッチ・パラメータ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パッチ・パラメータ・データサイズ(1-7)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PATCH NUMBER(1-128)
dim char(int) patch(0-6):パッチ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char patch()にパッチ・パラメータを記述しておく。
sizeは7以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
patch(0):TIMBRE GROUP (0~3:a,b,i,r)
patch(1):TIMBRE NUMBER (0~63)
patch(2):KEY SHIFT (0~48:-24~+24)
patch(3):FINE TUNE (0~100:-50~+50)
patch(4):BENDER RANGE (0~24)
patch(5):ASSIGN MODE (0~3:POLY1~4)
patch(6):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 MT32の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-20)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは20文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_u220_setup( port,id,setup )
*-----------------------------------------------------------------------------
機能 U220のセットアップ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) setup(6):セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にセットアップ・パラメータを記述しておく。
dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Chorus SW (0~1:OFF/ON)
setup(1):Reverb SW (0~1:OFF/ON)
setup(2):Rx Cntrl Channel (1~17:1~16,OFF)
setup(3):Patch Change (0~5:MAP1~MAP4,Dir,OFF)
setup(4):Timbre Change (0~5:MAP1~MAP4,Dir,OFF)
setup(5):Rhythm Change (0~5:MAP1~MAP4,Dir,OFF)
setup(6):R.Inst Assign (0~5:MAP1~MAP4,Dir,OFF)
(U220マニュアルp46,p146~148参照)
注意 U220用の命令はU20に対しても使用できる。以下同様。
*-----------------------------------------------------------------------------
zm_u220_part_setup( port,pt_id,setup )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)パートセットアップ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
d16-31=PART NUMBER(1-6)
dim char(int) setup(12):パートセットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にパートセットアップ・パラメータを記述しておく。
dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Timbre Number (1~128)
setup(1):Voice Reserve (0~30)
setup(2):Receive Channel (1~17:1~16,OFF)
setup(3):Key Range Low (0~127:C-1~G9)
setup(4):Key Range High (0~127:C-1~G9)
setup(5):Velo Level (0~1:Above/Below)
setup(6):Velo Threshold (0~127)
setup(7):Output Assign (0~4:Dry,Rev,Cho,Dir1,Dir2)
setup(8):Level (0~127)
setup(9):Pan (0~15:L7~M~R7)
setup(10):Rx Volume (0~1:OFF/ON)
setup(11):Rx Pan (0~1:OFF/ON)
setup(12):Rx Hold (0~1:OFF/ON)
(U220マニュアルp58,p149参照)
*-----------------------------------------------------------------------------
zm_u220_common( port,id,common )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)コモン・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) common(17):コモン・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char common()にコモン・パラメータを記述しておく。
dim char common()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
common(0):Chorus Type (0~4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
common(1):Chorus Out Mode (0~1:Pre Rev,Post Rev)
common(2):Chorus Level (0~31)
common(3):Chorus Delay (0~31)
common(4):Chorus Rate (0~31)
common(5):Chorus Depth (0~31)
common(6):Chorus Feedback (1~63:-31~0~+31)
common(7):Reverb Type (0~7:Room1~3,Hall1~2,Gate
Delay,CrossDelay)
common(8):Reverb Time (0~31)
common(9):Reverb Level (0~31)
common(10):Reverb Delay Feedback (0~31)
common(11):Reverb Pre Delay Feedback (0~31)
common(12):Param1 # (0~63:0~5,7~31,64~95,OFF)
common(13):Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
common(14):Param2 # (Same as Param1 #)
common(15):Param2 Param (Same as Param1 Param)
common(16):Param3 # (Same as Param1 #)
common(17):Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
*-----------------------------------------------------------------------------
zm_u220_timbre( port,tm_id,timbre )
*-----------------------------------------------------------------------------
機能 U220のティンバー・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int tm_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PROGRAM NUMBER(1-128)
dim char(int) timbre(25):ティンバー・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char timbre()にティンバー・パラメータを記述しておく。
dim char timbre()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
timbre(0):Tone Media (0~31:I,1~31)
timbre(1):Tone Number (1~128)
timbre(2):Timbre Level (0~127)
timbre(3):Velocity Sens (1~15:-7~+7)
timbre(4):Channel Press Sens (1~15:-7~+7)
timbre(5):Env Attack Rate (1~15:-7~+7)
timbre(6):Env Decay Rate (1~15:-7~+7)
timbre(7):Env Sustain Level (1~15:-7~+7)
timbre(8):Env Release Rate (1~15:-7~+7)
timbre(9):Pitch Shift Coarse (8~56:-24~+24)
timbre(10):Pitch Shift Fine (14~114:-50~+50)
timbre(11):Bend Range Lower (0~15:-36,-24,-12~0)
timbre(12):Bend Range Upper (0~12)
timbre(13):Channel After Sens (0~27:-36,-24,-12~+12)
timbre(14):Poly After Sens (0~27:-36,-24,-12~+12)
timbre(15):Auto Bend Depth (0~27:-36,-24,-12~+12)
timbre(16):Auto Bend Rate (0~15)
timbre(17):Detune Depth (0~15)
timbre(18):Rate (0~63)
timbre(19):Waveform (0~8)
timbre(20):Depth (0~15)
timbre(21):Delay (0~15)
timbre(22):Rise Time (0~15)
timbre(23):Modulation Depth (0~15)
timbre(24):Ch After Sens (0~15)
timbre(25):Poly After Sens (0~15)
(U220マニュアルp65,p149参照)
*-----------------------------------------------------------------------------
zm_u220_drums_setup( port,id,setup )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)パッチ・ドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) setup(6):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にドラム・セットアップ・パラメータを
記述しておく。dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Rhythm Setup # (0~3:1~4)
setup(1):Voice Reserve (0~30)
setup(2):Receive Channel (1~17:1~16,OFF)
setup(3):Level (0~127)
setup(4):Level Boost Sw (0~1:OFF/ON)
setup(5):Rx Volume (0~1:OFF/ON)
setup(6):Rx Hold (0~1:OFF/ON)
(U220マニュアルp63,p149参照)
*-----------------------------------------------------------------------------
zm_u220_drums_inst( int port,int dr_id,char *inst )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)ドラム音色設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
:d16-d31=NOTE NUMBER(35-99)
dim char(int) inst(19):ドラム音色パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char inst()にドラム音色パラメータを記述しておく。
dim char inst()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
inst(0):Tone Media (0~31:I,1~31)
inst(1):Tone Number (1~128)
inst(2):Source Key (0~127:C-1~G9)
inst(3):Mute Inst (34~98:OFF,B1~D7)
inst(4):Inst Level (0~31)
inst(5):Velocity Sens (0~15)
inst(6):Env Mode (0~1:Sustain,No Sustain)
inst(7):Env Attack Rate (1~15:-7~+7)
inst(8):Env Decay Rate (1~15:-7~+7)
inst(9):Env Release Rate (1~15:-7~+7)
inst(10):Pitch Shift Coarse (0~27:-36,-24,-12~+12)
inst(11):Pitch Shift Fine (14~114:-50~+50)
inst(12):Channel After Sens (0~27:-36,-24,-12~+12)
inst(13):Poly After Sens (0~27:-36,-24,-12~+12)
inst(14):Random (0~15)
inst(15):Auto Bend Depth (0~27:-36,-24,-12~+12)
inst(16):Auto Bend Rate (0~15)
inst(17):Detune Depth (0~15)
inst(18):Output Assign (0~3:Dry,Rev,Cho,Dir1)
inst(19):Pan (0~15:L7~M~R7)
(U220マニュアルp72,p149)
*-----------------------------------------------------------------------------
zm_u220_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 U220の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-12)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは12文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_m1_setup( setup )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のMIDIチャンネルの設定
引数 dim char(int) setup(7):8パート分のMIDIチャンネル列格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()には必ず8パート分のMIDIチャンネルを
記載しておく。
setup(0):パート1のMIDIチャンネル
setup(1):パート2のMIDIチャンネル
setup(2):パート3のMIDIチャンネル
setup(3):パート4のMIDIチャンネル
setup(4):パート5のMIDIチャンネル
setup(5):パート6のMIDIチャンネル
setup(6):パート7のMIDIチャンネル
setup(7):パート8のMIDIチャンネル
注意 M1用の命令はM1EX/M1R/M1REXに対しても使用できる。以下同様。
*-----------------------------------------------------------------------------
zm_m1_part_setup( ptstup )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のトラックパラメータの設定
引数 dim char(int) ptstup(39):8パート分のトラックパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char ptstup()には必ず8パート分のトラックパラメータを
記載しておく。
PART 1
ptstup(0):PROGRAM NUMBER (0~199:I00~C99)
ptstup(1):OUTPUT LEVEL (0~99)
ptstup(2):KEY TRANSPOSE ($F4~$0C:-12~12)
ptstup(3):DETUNE ($CE~$32:-50~+50)
ptstup(4):PAN (0~13:10:0~0:10,C,C+D,D)
PART 2~8(param(5)~param(39))以下同様の書式構成
(M1マニュアルp126参照)
*-----------------------------------------------------------------------------
zm_m1_effect_setup( effect )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のエフェクトパラメータの設定
引数 dim char(int) effect(24):エフェクトパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char effect()にはダミーデータも含めて必ず25個の
エフェクトパラメータが記載されていなければならない。
effect(0):Effect 1 Pattern No. (0~33:1~32,Thru)
effect(1):Effect 2 Pattern No. (0~33:1~32,Thru)
effect(2):Effect 1 L-Ch E.Balnc (0~100)
effect(3):Effect 1 R-Ch E.Balnc (0~100)
effect(4):Effect 2 L-Ch E.Balnc (0~100)
effect(5):Effect 2 R-Ch E.Balnc (0~100)
effect(6):Output 3 Pan (0~101:OFF,100:0~0:100)
effect(7):Output 4 Pan (0~101:OFF,100:0~0:100)
effect(8):Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
effect(9~16):Effect 1 Parameter
effect(17~24):Effect 2 Parameter
Structure of Effect Parameter
(ofs=9 or 17)
1~3:Hall (4,5:Room,6:Live Stage)
effect(ofs+0):Reverb Time (0~97:0.2~9.9),(0~48:0.2~5.0)
effect(ofs+1):Dummy 0
effect(ofs+2):High Damp (0~99)
effect(ofs+3):Pre Delay (0~200)
effect(ofs+4):E/R Level (0~99)
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
7~9:Early Reflection 1,2,3
effect(ofs+0):E/R Time (0~70:100~800)
effect(ofs+1):Pre Delay (0~200)
effect(ofs+2):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
10:Stereo Delayt,11:Cross Delay
effect(ofs+0):Delay Time L (L) (0~500)
effect(ofs+1):Delay Time L (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Delay Time R (L) (0~500)
effect(ofs+5):Delay Time R (H)
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
12~13:Stereo Chorus 1~2 (14~15:Flanger)
effect(ofs+0):Depth (0~99)
effect(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Feedback ($9D~$63:-99~+99)
effect(ofs+4):Delay Time (0~200),(0~50)
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
16~17:Phase Shifter 1~2
effect(ofs+0):Depth (0~99)
effect(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Feedback ($9D~$63:-99~+99)
effect(ofs+4):Manual (0~99)
effect(ofs+5):Dummy 0
effect(ofs+6):Dummy 0
effect(ofs+7):Dummy 0
18~19:Stereo Toremolo 1~2
effect(ofs+0):Depth (0~99)
effect(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Shape ($9D~$63:-99~+99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
20:Equalizer
effect(ofs+0):Dummy 0
: :
effect(ofs+3):Dummy 0
effect(ofs+4):Low fc (0~2:0.25k,0.50k,1.00k)
effect(ofs+5):High fc (0~2:1k,2k,4k)
effect(ofs+6):High Gain ($F4~$0C:-12~+12)
effect(ofs+7):Low Gain ($F4~$0C:-12~+12)
21:Overdrive
effect(ofs+0):Dummy 0
effect(ofs+1):Dummy 0
effect(ofs+2):Drive (0~99)
effect(ofs+3):Level (0~99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
22:Distortion
effect(ofs+0):Dummy 0
effect(ofs+1):Dummy 0
effect(ofs+2):Distortion (0~99)
effect(ofs+3):Level (0~99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):Dummy 0
effect(ofs+7):EQ Low Gain ($F4~$0C:-12~+12)
23:Exciter
effect(ofs+0):Blend ($9D~$63:-99~+99)
effect(ofs+1):Emphatic Point (0~9:1~10)
effect(ofs+2):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
24:Synphonic Ensamble
effect(ofs+0):Depth (0~99)
effect(ofs+1):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4~$0C:-12~+12)
effect(ofs+7):EQ Low ($F4~$0C:-12~+12)
25:Roteffect Speaker
effect(ofs+0):Depth (0~99)
effect(ofs+1):Dummy 0
effect(ofs+2):Speed Rate ($F6~$0A:-10~+10)
effect(ofs+3):Dummy 0
: :
effect(ofs+7):Dummy 0
26:Delay/Hall
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Reverb Time (0~97:0.2~9.9)
effect(ofs+5):Dummy 0
effect(ofs+6):High Damp (0~99)
effect(ofs+7):Pre Delay (0~150)
27:Delay/Room
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Reverb Time (0~97:0.2~9.9)
effect(ofs+5):Dummy 0
effect(ofs+6):High Damp (0~99)
effect(ofs+7):Pre Delay (0~150)
28:Delay/Early Reflection
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):E/R Time (0~30:100~400)
effect(ofs+5):Pre Delay (0~150)
effect(ofs+6):Dummy 0
effect(ofs+7):Dummy 0
29:Delay/Chorus
effect(ofs+0):Delay Time L (L) (0~500)
effect(ofs+1):Delay Time L (H)
effect(ofs+2):Feedback L ($9D~$63:-99~99)
effect(ofs+3):High Damp L (0~99)
effect(ofs+4):Delay Time R (L) (0~500)
effect(ofs+5):Delay Time R (H)
effect(ofs+6):Feedback R ($9D~$63:-99~99)
effect(ofs+7):High Damp R (0~99)
30:Delay/Chorus (31:Delay Flanger)
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Depth (0~99)
effect(ofs+5):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
effect(ofs+6):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+7):Feedback ($9D~$63:-99~99)
32:Delay/Phaser
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Depth (0~99)
effect(ofs+5):Speed (0~99:0.03~3.00 0.03step)
effect(ofs+6):Feedback ($9D~$63:-99~99)
effect(ofs+7):Dummy 0
33:Delay/Tremolo
effect(ofs+0):Delay Time (L) (0~500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D~$63:-99~99)
effect(ofs+3):High Damp (0~99)
effect(ofs+4):Depth (0~99)
effect(ofs+5):Speed (0~99:0.03~3.00 0.03step)
effect(ofs+6):Dummy 0
effect(ofs+7):Shape ($9D~$63:-99~99)
(M1マニュアルp127参照)
*-----------------------------------------------------------------------------
zm_m1_print( size,mes )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のタイトル設定
引数 int size:メッセージ長(1-10)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは10文字以内でstr mesに文字列を記述しておく。
*-----------------------------------------------------------------------------
zm_send_to_m1( port,id )
*-----------------------------------------------------------------------------
機能 M1へパラメータを送信する
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
備考 DEVICE ID=&H30+(グローバルチャンネル-1)
グローバルチャンネルとはGLOBALモードのF5-1で設定出来る。
idは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
必ず'm1_setup()'~'m1_print()'を設定してからこの命令を実行すること。
'm1_effect_setup()'のみ省略が可能。この時はドライバのデフォルトデータが
送信される。
'm1_setup()'~'m1_print()'の間にM1関係以外のコマンドがあると正常なデータが
送信されない。
例
dim char a(8)={2,1,4,3,6,5,8,7};
/*音色,音量,キートランスポーズ,デチューン,パンのフォーマット*/
dim char b(40)={0,99,0,0,5, /*TRACK 1*/
0,99,0,0,5, /*TRACK 2*/
0,99,0,0,5, /*TRACK 3*/
0,99,0,0,5, /*TRACK 4*/
0,99,0,0,5, /*TRACK 5*/
0,99,0,0,5, /*TRACK 6*/
0,99,0,0,5, /*TRACK 7*/
0,99,0,0,5}; /*TRACK 8*/
dim char c(25)={&H21,&H21};
m1_setup(a)
m1_part_setup(b)
m1_effect_setup(c)
m1_print(7,"Zenji.N")
send_to_m1(-1,&H30)
*-----------------------------------------------------------------------------
zm_pcm_read( num,flag,type,orig,param)
*-----------------------------------------------------------------------------
機能 PCMファイルの登録
引数 int num:登録番号 (ノート番号の場合:0~32767)
(音色番号の場合:$8000+(0~32767)
int flag:PCM加工コマンド(PPC)でPCMデータ加工するか(-1:YES,0:NO)
int type:登録次元(-1:ADPCM,1=16BitPCM,0=Ver.2.0互換)
int orig:オリジナルキー:0-127
dim char(int) param(~):登録データ情報およびPPC列格納配列(備考参照)
戻り値 0以外:dim char param()処理後のアドレス
0:エラー
備考 dim char param()からはまず、最大32文字分の音色名文字列を格納する。
終端コードは0。
次にディスクからPCMファイルを読みこむ場合はそのファイル名を
格納する。終端コードは0。...(1)
ディスクからデータを読み込まずにすでにZMUSIC側に登録されている
PCMデータをコピーして加工するには音色名の後に $0000 を格納し
さらにその後に参照番号を指定する。...(2)
PPCでPCMを加工する場合には、PPC列をこの後ろに格納しておく。
また、PPCでPCMを加工する場合は必ずint flagを-1とすること。
int flagが0だとたとえPPCがあっても無視される。
PPCについてはドキュメントMEASURE12を参照。
(1)の場合
[TONE NAME...最大32文字],0,[FILENAME文字列],0,PPCコマンド列...
(2)の場合
[TONE NAME...最大32文字],0,$00,$00,参照先番号(2bytes),PPCコマンド列...
参照先番号は
ノート番号の場合:0~32767
音色番号の場合:$8000+(0~32767)
で表される。
*-----------------------------------------------------------------------------
zm_pcm_erase( num )
*-----------------------------------------------------------------------------
機能 PCMファイルの登録取消
引数 int num:取消したい登録番号(ノート番号の場合:0~32767)
(音色番号の場合:$8000+(0~32767)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_register_zpd( zpd )
*-----------------------------------------------------------------------------
機能 ZPDの登録
引数 str zpd:登録するZPDのファイルネーム
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_set_zpd_table( ver,zpd )
*-----------------------------------------------------------------------------
機能 ZPDテーブルの登録
引数 int ver:ZPDバージョンタイプ(0:Ver.1.0~Ver.2.0,1:Ver.3.0,2:PDX)
dim char(int) zpd(~):登録するZPDテーブルを格納している配列(ZPDヘッダ含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 ZPDのテーブルの構造に付いてはMEASURE12を参照
*-----------------------------------------------------------------------------
zm_exec_subfile( filename )
*-----------------------------------------------------------------------------
機能 サブファイルの読み込みと実行
引数 str filename:サブファイルのファイル名
戻り値 0:正常終了
0以外:エラーコード
備考 サブファイルとは演奏の際に必要となる別ファイルにまとめた
補助ファイルのことを指す。具体的には、演奏ファイル(ZMS,ZMD,OPM)、
ADPCM定義リスト(CNF),ZPDファイル、MIDIデータファイル(MDD,MID)など。
*-----------------------------------------------------------------------------
zm_transmit_midi_dump( port,filename )
*-----------------------------------------------------------------------------
機能 MIDIデータファイルの転送
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
str filename:MIDIデータファイルのファイル名
戻り値 0:正常終了
0以外:エラーコード
備考 MIDIデータファイルにはVer.1.0からVer.2.0で標準MIDIデータファイルと
されてきたMDDファイルとVer.3.0から採用されたスタンダードMIDI
ファイル(FORMAT0)のMIDIファイルの2タイプがあるが、
この関数ではどちらも楽器へ転送することができる。
*-----------------------------------------------------------------------------
zm_set_wave_form1( wave,data )
*-----------------------------------------------------------------------------
機能 波形メモリの登録1
引数 int wave:波形番号(8-32767)
dim char(int) data(~):波形メモリデータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char data()で表される波形メモリデータは以下の構成を取る。
data(0~3)(4bytes):波形のデータサイズ(必ず偶数)
data(4):ループタイプ(0:oneshot,1:repeat,2:altanative)
data(5~8)(4bytes):ループ開始オフセット
data(9~12)(4bytes):ループ終了オフセット
data(13~16)(4bytes):ループ回数(0:∞,1~)
data(17~20)(4bytes):ダミー
data(21):波形名文字列長
data(22~)(?bytes):文字列(終端の0無し)
偶数要素(アドレス)から実際の波形データ(signed short)
:
:
※本関数で登録された波形はZMUSICに取り込まれるため、関数実行後
波形データ本体のメモリを解放しても構わない。
*-----------------------------------------------------------------------------
zm_set_wave_form2( wave,data )
*-----------------------------------------------------------------------------
機能 波形メモリの登録2
引数 int wave:波形番号(8-32767)
dim char(int) data(~):波形メモリデータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char data()で表される波形メモリデータは以下の構成は
zm_set_wave_form1()と同じ。
zm_set_wave_form1()とは、波形データがZMUSICに取り込まれない点が違う。
*-----------------------------------------------------------------------------
zm_obtain_events( omt,event )
*-----------------------------------------------------------------------------
機能 各種イベントの取得
引数 int omt:どのイベントに関する設定を行うかのビットマーカー
ビット=1でそのイベントの設定を更新する。
dim int(char) event(7):各種イベント発生時のジャンプ先とジャンプ条件が
記述された配列。構成は備考参照。
-1とするとint omtによらず設定は一切行わない。
戻り値 現在の設定を格納した領域のアドレス。構成は備考参照。
備考 event(0):m_playが実行された時のジャンプ先アドレス omtのd0ビット
event(1):m_stopが実行された時のジャンプ先アドレス omtのd1ビット
event(2):m_contが実行された時のジャンプ先アドレス omtのd2ビット
event(3):演奏が終了した時のジャンプ先アドレス omtのd3ビット
event(4):指定ループ回数(0:OFF,1-256) omtのd4ビット
event(5):指定回数ループした時のジャンプ先アドレス omtのd5ビット
event(6):指定クロック(0:OFF,1~) omtのd6ビット
event(7):演奏開始後指定クロック経過した時のジャンプ先アドレス omtのd7ビット
int omtでビット=1としたパラメータのみをint event(0)から記述しておく。
int omtでビット=0としたパラメータに関しては記述しない。
たとえばint omt=$81の場合、int event(0)からは
event(0)に「m_playが実行された時のジャンプ先アドレス」
event(1)に「演奏開始後指定クロック経過した時のジャンプ先アドレス」
を記述しておけばよい。
*-----------------------------------------------------------------------------
zm_get_loop_time()
*-----------------------------------------------------------------------------
機能 現在の演奏のループ回数を取得する
引数 なし
戻り値 -1以外:現在のループ回数(1~)
-1:エラー
*-----------------------------------------------------------------------------
zm_mask_tracks( track )
*-----------------------------------------------------------------------------
機能 トラックマスク
引数 dim int(char) track(~):マスクするトラックとマスク・モードのペアを
格納した配列
戻り値 設定出来なかったトラック番号(short int)の並びを格納した領域のアドレス
終端コード=-1(short)
備考 dim int track()からは
トラック番号(0-65534)*65536+マスクモード(0:MASK OFF,1:REVERSE,-1:MASK ON)
の数値列を記載する。終端コードは(short)-1。
*-----------------------------------------------------------------------------
zm_mask_all_tracks( mode )
*-----------------------------------------------------------------------------
機能 全トラックマスク
引数 int mode:(0:MASK OFF,1:REVERSE,-1:MASK ON)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_solo_track( track )
*-----------------------------------------------------------------------------
機能 ソロトラック演奏
引数 int(char) track:トラック番号(0-65534)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_mask_channels( channel )
*-----------------------------------------------------------------------------
機能 チャンネルマスク
引数 dim int(char) channel(~):マスクするチャンネルIDとマスク・モードのペアを
格納した配列
戻り値 設定出来なかった(int)チャンネルIDの並び,終端コード=(int)-1
備考 dim int channel()からは
チャンネルID(32ビット値),マスクモード(16ビット値)
の数値列を記載する。
なお、チャンネルIDは
チャンネルID(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
チャンネルID(下位16ビット):チャンネル番号0-15
マスクモードは(0:MASK OFF,1:REVERSE,-1:MASK ON) の値をとる。
終端コードは-1。
たとえばMIDI1の15チャンネル(ID:$8000_000e)をマスク(ID:$ffff)、
ADPCMの3チャンネル(ID$0001_0002)をマスク反転(ID:$0001)する場合は
{ &h8000000e,&hffff0001,&h00020001,-1}
となる。
*-----------------------------------------------------------------------------
zm_mask_all_channels( mode )
*-----------------------------------------------------------------------------
機能 全チャンネルマスク
引数 int mode:(0:MASK OFF,1:REVERSE,-1:MASK ON)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_solo_channel( channel )
*-----------------------------------------------------------------------------
機能 ソロチャンネル演奏
引数 int channel:(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int channel:(下位16ビット):チャンネル番号0-15
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_set_ch_output_level( out )
*-----------------------------------------------------------------------------
機能 各チャンネルの出力レベルの設定
引数 dim char(int) out(8):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char out()には以下の構成の出力パラメータを格納しておく。
out(0~1)(2bytes):デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI)
out(2~3)(2bytes):チャンネル番号(0-15)
out(4):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(5~6)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(7):フェーダー移動開始レベル(0-128)
out(8):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_set_tr_output_level( out )
*-----------------------------------------------------------------------------
機能 各トラックの出力レベルの設定
引数 dim char(int) out(6):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char out()には以下の構成の出力パラメータを格納しておく。
out(0~1)(2bytes):トラック番号(0-65534)
out(2):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(3~4)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(5):フェーダー移動開始レベル(0-128)
out(6):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_master_fader( fdr )
*-----------------------------------------------------------------------------
機能 マスターフェーダーの設定
引数 dim char(int) fdr(6):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char fdr()には以下の構成の出力パラメータを格納しておく。
out(0~1)(2bytes):デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI)
out(2):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(3~4)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(5):フェーダー移動開始レベル(0-128)
out(6):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_get_fader_status()
*-----------------------------------------------------------------------------
機能 フェーダーの状態取得
引数 なし
戻り値 d0,d1,d6,d7ビットに検査結果が反映される。
d0:実行中のチャンネルフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d1:実行中のマスターフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d6:チャンネルフェーダーの状態(1:実行中 0:実行されていない)
d7:マスターフェーダーの状態(1:実行中 0:実行されていない)
*-----------------------------------------------------------------------------
zm_get_play_time()
*-----------------------------------------------------------------------------
機能 演奏時間の取得
引数 なし
戻り値 16進表現で00HHMMSSという書式で返ってくる。
なおHH:0-99,MM:0-59,SS:0-59の値を取る。
*-----------------------------------------------------------------------------
zm_get_1st_comment()
*-----------------------------------------------------------------------------
機能 演奏中の曲のコメントを取り出す
引数 なし
戻り値 文字列アドレス
終端コードは0
*-----------------------------------------------------------------------------
zm_get_timer_mode()
*-----------------------------------------------------------------------------
機能 現在のテンポソースとなっているタイマの種類を返す
引数 なし
戻り値 0:タイマ A,1:タイマ B,2:YM3802タイマ
*-----------------------------------------------------------------------------
zm_get_track_table()
*-----------------------------------------------------------------------------
機能 演奏トラックテーブルのアドレスを得る
引数 なし
戻り値 演奏トラックテーブルのアドレス
備考 演奏トラックテーブルには演奏に使用されるトラック番号(2bytes)が
-1(2bytes)を終端コードとし羅列される。
*-----------------------------------------------------------------------------
zm_get_track_table_se()
*-----------------------------------------------------------------------------
機能 効果音演奏トラックテーブルのアドレスを得る
引数 なし
戻り値 効果音演奏トラックテーブルのアドレス
備考 効果音演奏トラックテーブルには演奏に使用されるトラック番号(2bytes)が
-1(2bytes)を終端コードとし羅列される。
*-----------------------------------------------------------------------------
zm_get_play_work( track )
*-----------------------------------------------------------------------------
機能 演奏トラックワークのアドレスを得る
引数 int track:トラック番号(0-65534)
戻り値 演奏トラックワークのアドレス
備考 演奏トラックワークの内容と構成に付いてはMEASURE13を参照のこと。
*-----------------------------------------------------------------------------
zm_get_play_work_se( track )
*-----------------------------------------------------------------------------
機能 効果音演奏トラックワークのアドレスを得る
引数 int track:トラック番号(0-65534)
戻り値 効果音演奏トラックワークのアドレス
備考 効果音演奏トラックワークの内容と構成は通常の演奏トラックと
まったく同一。
*-----------------------------------------------------------------------------
zm_get_buffer_information()
*-----------------------------------------------------------------------------
機能 バッファ・アドレステーブルのアドレス
引数 なし
戻り値 バッファ・アドレステーブルのアドレス
備考 バッファ・アドレステーブルの構成に付いてはMEASURE13を参照のこと
*-----------------------------------------------------------------------------
zm_zmsc_status()
*-----------------------------------------------------------------------------
機能 ZMUSICの状態ワークのアドレス
引数 なし
戻り値 ZMUSICの状態ワークのアドレスの構成に付いてはMEASURE13を参照のこと
備考 各バッファの先頭アドレステーブルの構成に付いてはMEASURE13を
参照のこと
*-----------------------------------------------------------------------------
zm_calc_total( zmd,result )
*-----------------------------------------------------------------------------
機能 ZMDの演奏時間やトータルステップタイムなどの計算
引数 dim char zmd(~):ZMDを格納した配列(ヘッダはあってもなくてもよい)
int result:戻り値を格納するための変数
戻り値 0:正常終了
0以外:発生したエラーの数
備考 ・戻り値が0の場合はint resultには計算結果データ列を格納した領域の
ポインタが返される。計算結果データ列の構成に付いてはMEASURE10
ファンクションZM_CALC_TOTALの項を参照のこと。
・戻り値が0以外の場合はint resultにはエラーの内容を格納した
エラーテーブルのアドレスが返される。
エラーテーブルの構成に付いてはMEASURE11を参照のこと。
・いずれの場合もint resultに返された領域は使用後free_mem()などで
解放すること。
・この関数はコンパイラに含まれる外部組み込みのファンクションと
であるため、使用前にはコンパイラの常駐を確認する必要がある。
*-----------------------------------------------------------------------------
zm_occupy_zmusic( mode )
*-----------------------------------------------------------------------------
機能 ZMUSICの占有
引数 int mode:1=占有する,0=占有を解除する,-1=占有状態の検査
戻り値 mode=0,1のとき:以前の占有状態(mode=-1の時を参照)
mode=-1のとき:0=占有されていない,1=占有されている
*-----------------------------------------------------------------------------
zm_occupy_compiler( mode )
*-----------------------------------------------------------------------------
機能 コンパイラの占有
引数 int mode:1=占有,0=占有解除,-1=占有状態検査
戻り値 mode=0,1のとき:以前の占有状態(mode=-1の時を参照)
mode=-1のとき:0=占有されていない,1=占有されている
*-----------------------------------------------------------------------------
zm_store_error( err,noferr,addr )
*-----------------------------------------------------------------------------
機能 エラーコードのストア
引数 int err(上位16):エラーの発生したファンクション番号(0-32767)
(下位16):エラーコード(0-65535)
int err=-1とした場合は問い合わせのみでストアは行わない
int noferr:エラーの合計個数値に幾つ加算するか
int addr:エラーストックバッファの先頭アドレスを格納する変数
戻り値 現在ストックしているエラーの個数
備考 ・本関数はユーザーアプリケーション側で発生したエラーをZMUSIC側に
知らせたい場合に使用する。ただしその場合、エラーコードフォーマットは
MEASURE11で示してある形式に従わなければならない。
*-----------------------------------------------------------------------------
zm_print_error( mode,lang,noferr,ZMD,srcaddr,srcname,errtbl,buff )
*-----------------------------------------------------------------------------
機能 エラーメッセージの表示
引数 int mode:メッセージの出力先(0:画面,1:バッファ)
int lang:メッセージの言語(0:英語,1:日本語)
int noferr:エラーの数
str zmd:ZMDのファイル名(無い場合はzmd="")
dim char(int) srcaddr(~):ソース(ZMS)のアドレス(無い場合はsrcaddr(0)=0)
str srcname:ソース(ZMS)ファイル名(無い場合はsrcname="")
int errtbl:エラーストックバッファの先頭アドレス
int buff:出力バッファの先頭アドレスを格納する変数
(int mode=1の時のみ有効,バッファの終端には0)
戻り値 出力バッファのサイズ。ただし終端の0は含まない。
備考 エラーテーブルからエラーメッセージを得る場合などに使用する。
zmd~srcnameは通常の外部アプリケーションならば0やNUL文字列でよい。
コンパイラなどの場合はそれらを正しく設定すればタグジャンプに
対応した出力を得ることが出来る。
*-----------------------------------------------------------------------------
zm_get_mem( size,emply )
*-----------------------------------------------------------------------------
機能 メモリの確保
引数 int size:確保サイズ
int emply:確保するメモリの用途ID
戻り値 0:確保に失敗した
0以外:確保したメモリブロックのアドレス
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
ZMUSICに無関係のメモリブロックを確保する場合ならば当関数を
用いる必要はない。
*-----------------------------------------------------------------------------
zm_enlarge_mem( size,addr )
*-----------------------------------------------------------------------------
機能 メモリブロックのサイズの変更
引数 int size:変更後のサイズ
int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 確保しなおしたメモリブロックのアドレス
0ならば確保に失敗した事を意味する
備考 ・メモリブロックのサイズを大きくした場合などはメモリブロックの
再配置が自動で行われる。そのためint addrで与えられたメモリブロックが
別のアドレスに移動する場合がある。よってこの関数を実行後は
int addrを戻り値のアドレス値に置き換えるべきである。
・変更に失敗した場合は、int addrのメモリブロックの内容は保証される。
*-----------------------------------------------------------------------------
zm_free_mem( addr )
*-----------------------------------------------------------------------------
機能 メモリブロックの解放
引数 int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 0:解放成功
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_free_mem2( emply )
*-----------------------------------------------------------------------------
機能 特定の用途IDを持ったメモリブロックの解放
引数 int emply:メモリの用途ID
戻り値 0:解放成功
0以外:エラーコード
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
*-----------------------------------------------------------------------------
zm_exchange_memid( mode,s_emply,d_emply,addr )
*-----------------------------------------------------------------------------
機能 メモリブロックの用途IDの変更
引数 int mode:変更モード(0:チェックなしで変更,1:チェックしてから更新
-1:int s_emplyの用途IDを持つメモリブロックをすべて
int d_emplyの用途IDへ変更する)
int s_emply:更新元メモリの用途ID(int mode=0の場合は意味なし)
int d_emply:希望メモリの用途ID
int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 0:変更成功
0以外:エラーコード
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
*-----------------------------------------------------------------------------
zm_init_all()
*-----------------------------------------------------------------------------
機能 ZMUSICの全初期化を行う
引数 なし
戻り値 Z-MUSICのバージョンID
備考 通常のアプリケーションは本関数を利用する必要はない
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
*-----------------------------------------------------------------------------
zm_int_start( tmtype )
*-----------------------------------------------------------------------------
機能 割り込み開始制御
引数 int tmtype:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
*-----------------------------------------------------------------------------
zm_int_stop( tmtype )
*-----------------------------------------------------------------------------
機能 割り込み停止制御
引数 int tmtype:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
*-----------------------------------------------------------------------------
zm_control_tempo( mode )
*-----------------------------------------------------------------------------
機能 テンポ設定の主導権設定
引数 int mode:-1=テンポ設定の主導権を外部アプリケーションに委託
0=テンポ設定の主導権をZMUSICに戻す
(このとき内部パラメタでテンポの初期化も実施する)
戻り値 0:設定正常終了
0以外:設定失敗
*-----------------------------------------------------------------------------
zm_convert_pcm( mode,size,source,destination )
*-----------------------------------------------------------------------------
機能 PCMデータの変換を行う
引数 int mode:変換モード(0:ADPCM to PCM,1:PCM TO ADPCM)
int size:変換元のPCMのデータサイズ
dim char(or int) source(~):変換元となるPCMデータ(ADPCMデータ)の格納配列
dim char(or int) destination(~):変換先となるPCMデータ(ADPCMデータ)の格納配列
戻り値 なし
*-----------------------------------------------------------------------------
zm_work( track,offset )
*-----------------------------------------------------------------------------
機能 演奏トラックワークの内容取得
引数 int track:トラック番号(0-65534)
int offset:演奏トラックワークオフセット
戻り値 ワーク内容(0~255)
備考 演奏トラックワークの内容と構成に付いてはMEASURE13を参照のこと。
*-----------------------------------------------------------------------------
zm_exec_zmd( track,size,zmd )
*-----------------------------------------------------------------------------
機能 ZMD列の実行
引数 int track:トラック番号(0-65534,65535:特に指定しない場合)
int size:ZMD列の長さ
dim char zmd:ZMD列格納配列(配列自体はsize+8の大きさを必要とする)
戻り値 なし
*-----------------------------------------------------------------------------